In known highly complex network protocols finite state machines (FSMs) become very complex, thereby making the encoding of protocol FSMs very difficult. One of the reasons for the complexity is that the FSMs must take into account the availability of several required resources before the FSMs can start a processing task. The FSMs request resources (and the resources may be granted in sequence) and remember which resources have already been granted and which resources still need to be requested. For a typical functional state performing a task, there are multiple sub-states that reflect the achieved ownership of the required resources. Thus, there exists a need to overcome at least one of the preceding deficiencies and limitations of the related art.